package com.demo.dbcompare.factory;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.springframework.util.Assert;

import com.demo.dbcompare.mapper.TableColumnInfoMapper;
import com.demo.dbcompare.model.dto.ConnConf;

public class MapperCache {
	private MapperCache(){}
	
	private static final Map<ConnConf, TableColumnInfoMapper> mapperMap = new ConcurrentHashMap<>();
	
	public static final TableColumnInfoMapper getTableColumnInfoMapper(ConnConf connConf) {
		TableColumnInfoMapper tableColumnInfoMapper = mapperMap.get(connConf);
		if (null == tableColumnInfoMapper) {
			// 根据数据库连接信息获取mapper
			tableColumnInfoMapper = MapperFactoty.getMapper(connConf, TableColumnInfoMapper.class);
			if (null != tableColumnInfoMapper) {
				mapperMap.put(connConf, tableColumnInfoMapper);
			}
		}
		Assert.notNull(tableColumnInfoMapper);
		return tableColumnInfoMapper;
	}
	
}
